package com.ruoyi.common.annotation

//import java.lang.annotation.Documented
//import java.lang.annotation.ElementType
//import java.lang.annotation.Retention
//import java.lang.annotation.RetentionPolicy
//import java.lang.annotation.Target
import com.ruoyi.common.constant.CacheConstants
import com.ruoyi.common.enums.LimitType

/**
 * 限流注解
 *
 * @author ruoyi
 */
//@Target(ElementType.METHOD)
//@Retention(RetentionPolicy.RUNTIME)
//@Documented
@Target
@Retention(AnnotationRetention.RUNTIME)
@MustBeDocumented
annotation class RateLimiter(
        /**
         * 限流key
         */
        val key: String = CacheConstants.RATE_LIMIT_KEY,
        /**
         * 限流时间,单位秒
         */
        val time: Int = 60,
        /**
         * 限流次数
         */
        val count: Int = 100,
        /**
         * 限流类型
         */
        val limitType: LimitType = LimitType.DEFAULT)
